Each WrapAbilitties would be a single class --> single class,
group of classes, or group of WrapAbilities and classes.
Cycles may exist in the network, and will not cause errors.

Define a group of classes. Use groups of groups recursively.